﻿#region << 版 本 注 释 >>
/*----------------------------------------------------------------
// Copyright (C) 2022 kingerrobot
// 版权所有。 
//
// 文件名：Class1
// 文件功能描述：
//
// 创建者：名字 (zzl)
// 时间：2022/1/21 9:28:18
//
// 修改人：
// 时间：
// 修改说明：
// 版本：V1.0.0
//----------------------------------------------------------------*/
#endregion
namespace KingerRobot.MexicoSailunMDC.SpiService;

internal class BRcsEquipEms : IRcsEquipEms
{
    private readonly static IWcsAsrsNetOutPut _WcsAsrsNetOutPut = new BWcsAsrsNetOutPut();
    public List<PORcsEquipEms> GetEquipEmss()
    {
        var db = Db.Default;

        // 查找硫化机
        var result = db.RcsEquipEmss
            .Join(db.RcsEquips, f => f.Id, s => s.Id, (f, s) => new { Ems = f, Equip = s })
            .Where(t => t.Equip.EquipEnable == 1 && t.Equip.ErrCode == 0)
            .Select(t => t.Ems)
            .ToList();

        return result;
    }

    public List<PORcsEquipEms> GetEquipEmssByTargetLoc(long targetLod)
    {
        var asrsNetOutput = _WcsAsrsNetOutPut.GetFirstAsrsNetOutputByTargetLoc(targetLod);
        if (asrsNetOutput == null)
        {
            return null;
        }
        var emsIds = new List<long>()
        {
            asrsNetOutput.EmsId.GetValueOrDefault(),
            asrsNetOutput.EmsId2.GetValueOrDefault(),
        };

        // 查找硫化机
        var result = GetEquipEmss();
        //.Where(t => emsIds.Contains(t.Id.GetValueOrDefault()))
        //.ToList();
        result = result.Join(emsIds, f => f.Id, s => s, (f, s) => f).ToList();

        return result;
    }
    public PORcsEquipEms GetEquipEmssById(long id)
    {
        var db = Db.Default;
        var result = db.RcsEquipEmss.Where(t => t.Id == id).FirstOrDefault();

        return result;
    }

}